<?php
Class Contactpersoon_model extends CI_Model
{
	var $adresId;
	var $contactgegevensId;
	
	public function getAllContactpersoon()
	{
		$query = $this->db->get('contactpersoon');      
        return $query->result();
	}
	
	//hier wordt de data uit de velden gehaald en in de database geinsert 
	public function newContactpersoon()
	{			
		$this->db->insert('contactgegevens', $this->arrayContactData());
		$this->db->insert('adres', $this->arrayAdresData());
		$this->db->insert('contactpersoon', $this->arrayContactpersoonData());
				
		/*
		 * koppeltabel query
		 * client_id wordt opgehaald en het laatst geinserde contactpersoon
		 * wordt in de koppeltabel geplaatst
		 * */
		$contactpersoon_id = $this->db->insert_id();
		$client_id = $this->uri->segment(4);
			
		$this->db->query("INSERT INTO contactpersoonclient
		(contactpersoon_id, client_id) VALUES ('$contactpersoon_id', '$client_id')");
	}
	
	//met deze functie worden de velden bewerkt
	public function updateContactpersoon()
	{
		$contactgegevens_id = $this->uri->segment(6);
		$this->db->where('contactgegevens_id', $contactgegevens_id);
		$this->db->update('contactgegevens', $this->arrayContactData()); 
		
		$adres_id = $this->uri->segment(8);
		$this->db->where('adres_id', $adres_id);
		$this->db->update('adres', $this->arrayAdresData()); 
		
		$contactpersoon_id = $this->uri->segment(10);
		$this->db->where('contactpersoon_id', $contactpersoon_id);
		$this->db->update('contactpersoon', $this->arrayContactpersoonData2()); 	
	}
	
	public function edit_Contactpersoon()
	{		
		$id =  $this->uri->segment(10);
		
		$query = $this->db->query("		
		SELECT * FROM client 
		INNER JOIN contactpersoonclient
		ON client.client_id = contactpersoonclient.client_id 
		INNER JOIN contactpersoon
		ON contactpersoon.contactpersoon_id = contactpersoonclient.contactpersoon_id
		INNER JOIN adres
		ON contactpersoon.adres_id = adres.adres_id
        INNER JOIN contactgegevens
       	ON contactgegevens.contactgegevens_id = contactpersoon.contactgegevens_id
		WHERE contactpersoon.contactpersoon_id ='$id'
		");
		
		return $query->result();
	}	
	        	
	public function getContactpersoonByClient($id)
	{
		$query = $this->db->query("		
		SELECT * FROM client 
		INNER JOIN contactpersoonclient
		ON client.client_id = contactpersoonclient.client_id 
		INNER JOIN contactpersoon
		ON contactpersoon.contactpersoon_id = contactpersoonclient.contactpersoon_id
		INNER JOIN adres
		ON contactpersoon.adres_id = adres.adres_id
        INNER JOIN contactgegevens
       	ON contactgegevens.contactgegevens_id = contactpersoon.contactgegevens_id
		WHERE client.client_id = '$id'
		");
		
		return $query->result();
	}
	
	public function getContactpersoon($id){
		
		$query = $this->db->query("		
		SELECT * FROM client 
		INNER JOIN contactpersoonclient
		ON client.client_id = contactpersoonclient.client_id 
		INNER JOIN contactpersoon
		ON contactpersoon.contactpersoon_id = contactpersoonclient.contactpersoon_id
		INNER JOIN adres
		ON contactpersoon.adres_id = adres.adres_id
        INNER JOIN contactgegevens
       	ON contactgegevens.contactgegevens_id = contactpersoon.contactgegevens_id
		WHERE contactpersoon.contactpersoon_id ='$id'
		");
		
		return $query->result();
	}
	//een array met de data voor het contactpersoon wat je gaat toevoegen
	private function arrayContactData(){
		$contactData = array(
			'vaste_telefoon_nr' => $this->input->post('vaste_telefoon_nr'),
			'email' => $this->input->post('email'),
			'mobiel_telefoon_nr' => $this->input->post('mobiel_telefoon_nr')
		);
	
		return $contactData;
	}
	
	//een array met adres data
	private function arrayAdresData(){
		$adresData = array(
			'straat' => $this->input->post('straat'),
			'huisnummer' => $this->input->post('huisnummer'),
			'woonplaats' => $this->input->post('woonplaats'),
			'postcode' => $this->input->post('postcode'),
			'wijk' => $this->input->post('wijk')
		);
		
		return $adresData;
	}
	
	//een array met data van het contactpersoon (voornaam, achternaam)
	private function arrayContactpersoonData(){
		$contactpersoonData = array(
			'voornaam' => $this->input->post('voornaam'),
			'achternaam' => $this->input->post('achternaam'),
			'functie' => $this->input->post('functie'),		
			'adres_id' => $this->adresId = $this->db->insert_id(),
			'contactgegevens_id' => $this->contactgegevensId = $this->db->insert_id()					
		);
		
		return $contactpersoonData;
	}	
	
	private function arrayContactpersoonData2(){
		$contactpersoonData = array(
			'voornaam' => $this->input->post('voornaam'),
			'achternaam' => $this->input->post('achternaam'),
			'functie' => $this->inpiut->post('functie'),		
			'adres_id' => $this->uri->segment(8),
			'contactgegevens_id' => $this->uri->segment(6)					
		);
		
		return $contactpersoonData;
	}

	public function deleteContactpersoon(){
	
		$contactpersoonid = $this->uri->segment(10);
		$adresid = $this->uri->segment(8);
		$contactgegevensid = $this->uri->segment(6);
		$this->db->query("DELETE FROM contactpersoonclient WHERE contactpersoon_id = '$contactpersoonid'");
	
		$this->db->query("DELETE FROM contactpersoon  WHERE contactpersoon_id = '$contactpersoonid'");
		$this->db->query("DELETE FROM adres WHERE adres_id ='$adresid'");
		$this->db->query("DELETE FROM contactgegevens WHERE contactgegevens_id = '$contactgegevensid'");
	
	}
}
?>